package com.cn.wanxi.util;

class Persion {
    //    名字
//    身份证
//    性别
//    衣服
//    鞋子
//    年龄 age=19；
//    生活中的特性應該在Java里面需要有具体的东西去对应
//    Java里面我们将之称为属性
//    Java里面类的组成部分
    /**
     *  包
     *  类名
     *  属性
     *  方法
     *  构造方法
     */
    /**
     * 请列举10个以上关键字？
     * 请猎取5个以上的异常？
     */
//   容器： 19，通过什么来装19？
//    java 是严格，所以需要用不同的容器来装
//    Java的容器有那些？
//    Java数据类型？---2种：基本数据类型和引用数据类型
//    基本数据类型有哪些？
//    Java语言提供了八种基本类型。
//    六种数字类型（
//    四个整数型，             byte     short    int   long
//    每个字节byte占8个bit位
//    0000 0000  二进制 1 0
//    1000 1001  十进制  9
//    10的二进制  0000 1010
//    一个byte最大是多少？ 是不是有符号位？一般情况下有符号位标示有正负数，所以最左边的那个符号标示正负号
//    0代表正数   1代表 负数
//    一个byte最小是多少？
//    有符号位取值范围  -128~127
//    无符号为取值范围  0~255
//    面试的时候：二进制和十进制相互转换
//    四个整数型，             byte             short          int   long
//    每个类型所占的字节         1                2            4       8
//    每个类型的取值范围   -2^7 ~ 2^7-1   -2^15 ~~ 2^15-1
//    整型默认值：0
//    两个浮点型），
//    float    4 字节 0.0f
//    double    8 字节 0.0d


//    一种字符类型，
//            char   2字节
//            默认值 ''
//    还有一种布尔型。
//            布尔有多少个字节？ 1个bit位
//            -----------------------------------------------
//            数据类型之间可以相互转换？
    public static void main(String[] args) {
//      数据类型   变量名   赋值运算符   字面量
//        运算符：
//        boolean bb = false;
//        float a = 99.9F;
//        long b = 11L;
//        char c = ' ';
//        int i = 1;
//        基本类型不算是一个类，基本类型是属于一个类的简写，属于特殊的类
//        基本类型的原始类包装类  每一个基本类型都有属于自己的包装类
//        Byte  byte
//        Integer int
//        Short short
//        Long long
//        Float float
//        Double double
//        Boolean boolean
//        Character char
//          相互转型？
//        向上转型(基本--》引用类型)和向下转型
//        强制转型（大--》小）或自动转型
//        i = bb;//布尔不能和其他数据类型相互转换
//        bb = i;
//        i = c;
//        c = (char) i;
//        a = i;
//        i = (int) a;
//        i = (int) b;//大碗的水放入小碗，会溢出：精度丢失
//        b = i;

//        if (3 > 2) {
//            bb = true;
//        } else {
//            bb = false;
//        }
//        bb = 3 > 2 ? true : false;
//        bb=a==b;
//        for (int j = 0; j < 10; j++) {
//            i=i+1;
//        }
//        引用类型  大写的  都叫类
//        命名规则：
/**
 * 命名规则：
 * 1.包  全部小写，如果有多个单词只要是一个意思也全部小写，如果不是一个意思，则用.号隔开
 *      com.cn.wanxi  国际.国内.公司名称
 * 2.类名  大驼峰式命名  PersionOne  每一个单词的首字母大写
 * 3.属性名：  小驼峰式命名 persionOne  第一个单词小写，其他首字母大写
 * 4.方法名：小驼峰式命名 persionOne  第一个单词小写，其他首字母大写
 * 5.常量： 全部大写 PERSION_ONE;
 * ------------------------------
 * 注意：名称不可位汉字，特殊字符，不可位拼音，不可混拼 ，建议应该全部位英文
 */


    }

    /**
     * 类的组成部分
     * 包
     * 类
     * 属性
     * --------------------------
     * 一个完整的属性定义：
     * 如果变量定义在类的下面叫属性，也叫做全局变量，
     * 如果在方法里面叫局部变量
     */
    /**
     * 私有只能在当前类调用
     * 如果在其他包里面调用，只能调用public
     * 只能修饰方法和属性的：private和protected
     */
    public static int publicAge = 18;
    private static int privateAge = 19;
    protected static int protectedAge = 20;
    static int age = 22;
    final String NAME = "aa";
//    权限修饰符（访问修饰符）
    /**
     * public
     * private
     * protected
     * 默认不写
     */

//    特征修饰符（非访问修饰符）

    /**
     * static 修饰符，用来修饰类方法和类变量。
     * <p>
     * final 修饰符，用来修饰类、方法和变量，
     * final 修饰的类不能够被继承，
     * 修饰的方法不能被继承类重新定义，
     * 修饰的变量为常量，是不可修改的。
     * <p>
     * abstract 修饰符，用来创建抽象类和抽象方法。
     * <p>
     * synchronized 和 volatile 修饰符，主要用于线程的编程。
     */
    /**
     * 重写？
     * 1.子类和父类
     * 2.方法名相同，参数相同
     * 3.返回值类型一定相同？
     * 重载？
     * 1：一般来说是同一个类
     * 2.方法名相同，参数类型不同
     * 3.和返回值没有关系
     */
//    数据类型
//    变量名
//    赋值运算符
//    字面量
//  定义一个完整的方法
    String name;

    //    void 表示没有返回值
//    如果不要返回值，那么方法名必须写成类名,则变成构造方法
//    构造方法的目的：就是为了调用当前对象
//    构造方法有没有返回值？有返回值，只不过返回值是对象本身
//    如果连名字都没有，则表示代码块
//    如果代码块和构造方法都出现，则先打印代码块
//    如果是静态代码块，则先执行静态
//    public abstract  String aa(String name) throws Exception;
//    Persion() {
//        System.out.println("1111");
//    }
//
//    {
//        System.out.println("fdsa");
//
//    }
//
//    static {
//        System.out.println("0000");
//    }

    Object aa(String a) {
        System.out.println("persion");
        return "";
    }
//    public static String aa(String name) throws Exception {
//        System.out.println(111);
//        return "";
//    }
//    权限修饰符   特征修饰符  返回值类型   方法名  （参数类型 参数名称） 抛出异常{
//          执行代码
//          返回数据
//    }
}
